home *** CD-ROM | disk | FTP | other *** search
/ VRML 2.0 Sourcebook (2nd Edition) / VRML 2.0 Sourcebook CD [md5 fed90f4f9c39d5a60d477058775c7e21].iso / book / unix / ch30 / 30fig04.wrl < prev    next >
Text File  |  1996-09-23  |  2KB  |  88 lines

  1. #VRML V2.0 utf8
  2. # The VRML 2.0 Sourcebook
  3. # Copyright [1997] By
  4. # Andrea L. Ames, David R. Nadeau, and John L. Moreland
  5. Group {
  6.     children [
  7.         Background {
  8.             skyColor    [ 1.0 0.0 0.8,  0.5 0.0 0.8,  0.0 0.0 0.8 ]
  9.             skyAngle    [ 1.309, 1.571 ]
  10.             groundColor [ 0.0 0.0 0.1,  0.0 0.1 0.3,  0.3 0.3 0.6 ]
  11.             groundAngle [ 1.309, 1.571 ]
  12.         },
  13.     # Floor
  14.         Shape {
  15.             appearance Appearance {
  16.                 material Material { }
  17.             }
  18.             geometry Box { size 2.0 0.01 0.5 }
  19.         },
  20.     # Animating red ball
  21.         Transform {
  22.             translation 0.0 1.1 0.0
  23.             children DEF BallTransform Transform {
  24.                 children Shape {
  25.                     appearance Appearance {
  26.                         material Material {
  27.                             diffuseColor 1.0 0.0 0.0
  28.                         }
  29.                     }
  30.                     geometry Sphere { radius 0.1 }
  31.                 }
  32.             }
  33.         },
  34.     # Animation clock
  35.         DEF Clock TimeSensor {
  36.             cycleInterval 4.0
  37.             loop TRUE
  38.         },
  39.     # Script
  40.         DEF Mover Script {
  41.             url "javascript:
  42.                 function set_fraction( fraction, eventTime ) {
  43.                     value_changed[0] = fraction;
  44.                     value_changed[1] = radius * Math.sin( turns * fraction * 6.28 );
  45.                     value_changed[2] = radius * Math.cos( turns * fraction * 6.28 );
  46.                 }"
  47.             field    SFFloat radius 1.0
  48.             field    SFFloat turns  1.0
  49.             eventIn  SFFloat set_fraction
  50.             eventOut SFVec3f value_changed
  51.         }
  52.     # Debugger
  53.         DEF Debug Script {
  54.             url "javascript:
  55.                 function initalize( ) {
  56.                     string_changed[0] = label + ':';
  57.                 }
  58.                 function set_float( f, ts ) {
  59.                     string_changed[0] = label + ': ' + f;
  60.                 }"
  61.             field    SFString label "fraction"
  62.             eventIn  SFFloat  set_float
  63.             eventOut MFString string_changed
  64.         },
  65.         Transform {
  66.             translation 0.0 0.01 -0.15
  67.             children Shape {
  68.                 appearance Appearance {
  69.                     material Material {
  70.                         diffuseColor  0.0 0.0 0.0
  71.                         emissiveColor 1.0 1.0 1.0
  72.                     }
  73.                 }
  74.                 geometry DEF Message Text {
  75.                     fontStyle FontStyle {
  76.                         size 0.35
  77.                         justify "MIDDLE"
  78.                     }
  79.                 }
  80.             }
  81.         }
  82.     ]
  83. }
  84. ROUTE Clock.fraction_changed  TO Mover.set_fraction
  85. ROUTE Mover.value_changed     TO BallTransform.set_translation
  86. ROUTE Clock.fraction_changed  TO Debug.set_float
  87. ROUTE Debug.string_changed    TO Message.set_string
  88.